The present invention relates generally to web content and, more particularly, to the transfer and presentation of web content among data processing systems.
The Internet is a worldwide decentralized network of computers having the ability to communicate with each other. The Internet has gained broad recognition as a viable medium for communicating and interacting across multiple networks. The World Wide Web (Web) was created in the early 1990""s, and is composed of server-hosting computers (web servers) connected to the Internet that have hypertext documents or web pages stored therewithin. Web pages are accessible by client programs (i.e., web browsers) utilizing the Hypertext Transfer Protocol (HTTP) via a Transmission Control Protocol/Internet Protocol (TCP/IP) connection between a client-hosting device and a server-hosting device.
An intranet is a private computer network conventionally contained within an enterprise and that conventionally includes one or more servers in communication with multiple user computers. An intranet may be composed of interlinked local area networks and may also use leased lines in a wide-area network. An intranet may or may not include connections to the outside Internet. Intranets conventionally utilize various Internet protocols and, in general, often look like private versions of the Internet. An intranet user conventionally accesses an intranet server via a web browser running locally on his/her computer.
Exemplary web browsers for both Internet and intranet use include Netscape Navigator (Netscape Communications Corporation, Mountain View, Calif.) and Internet Explorer (Microsoft Corporation, Redmond, Wash.). Web browsers typically provide a graphical user interface for retrieving and viewing information, applications and other resources hosted by Internet/intranet servers (hereinafter collectively referred to as xe2x80x9cweb serversxe2x80x9d or xe2x80x9cweb sitesxe2x80x9d).
Web content including, but not limited to, information, applications, applets and other video and audio resources (collectively referred to herein as xe2x80x9cfilesxe2x80x9d) are conventionally delivered from a web server to a web browser on a user""s computer in the form of web pages. As is known to those skilled in this art, a web page is conventionally formatted via a standard page description language such as HyperText Markup Language (HTML) or Extensible Markup Language (XML), and typically displays text and graphics, and can play sound, animation, and video data. HTML and XML provide basic document formatting and allow a web content provider to specify hypertext links (typically manifested as highlighted text) to other servers and files. When a user selects a particular hypertext link, a web browser reads and interprets the address, called a Uniform Resource Locator (URL) associated with the link, connects the web browser with the web server at that address, and makes an HTTP request for the file identified in the link. The web server then sends the requested file to the client in the format of the requested file (e.g. HTML, XML, GIF, JPEG, etc) which the browser interprets and displays to the user.
With the increasing mobility of today""s society, the demand for mobile computing capabilities has also increased. Many workers and professionals are downsizing their laptop computers to smaller palm-top or hand-held devices, such as personal digital assistants (PDAs). In addition, many people now utilize cellular telephones to access the Internet and to perform various other computing functions. Hand-held computing devices including, but not limited to, PDAs, cellular telephones, and computing devices utilized within appliances and automobiles, are often collectively referred to as xe2x80x9cpervasivexe2x80x9d computing devices. Many hand-held computing devices utilize the Microsoft Windows CE and 3Com Palm Computing platforms as well as web browsers such as HandWeb from SmartCode, Inc. and the Pocket Internet Explorer from Microsoft, Inc.
Unfortunately, hand-held computing devices may have limited functionality in comparison to desktop computers for which much web content has been developed. For example, hand-held devices may be voice only, may have limited processing capabilities, limited memory, black and white displays or may have displays that are small in size compared with desktop computer displays. As a result, images and text otherwise displayable on a desktop computer display may not be displayable on a hand-held computing device display or may be impractical or otherwise undesirable to display on a hand-held computing device. For example, a desktop computer display having an array of 1024 pixels by 768 pixels may be able to display a large (e.g., 2 megabit), 24 bit per pixel image. A hand-held computing device with a display having an array of 120 pixels by 120 pixels and with the ability to display only a few bits per pixel, may ignore much of the image data. As a result the image may not be displayed properly, if at all, via the hand-held computing device display. Furthermore, text within a file may have a particular font or size that can hinder the display thereof within a hand-held computing device display.
Files that may not be displayable via a hand-held computing device display can typically be transformed into a format that is displayable within a hand-held computing device display. For example, large, high resolution, color images can be transformed into small, black and white images that can be displayed within small, low resolution displays. Furthermore, because some web servers can recognize the type of client device requesting a file, files in the proper format for display via the requesting client device can be provided.
Furthermore, these pervasive computing devices may be connected to a network, such as the Internet or an intranet, through different communication methods. For example, the same pervasive computing device may be connected to a network via a direct Local Area Network (LAN) connection such as through a network interface card (NIC) during one session and then in a subsequent session be connected over a wireless communication link, such as over a cellular telephone. These differing connection methods may have substantially differing properties which may impact on the form of content provided to the pervasive computing device. Thus, the LAN connection provide low cost and short delays for acquiring and rendering information while the wireless communication link may be at a higher cost with longer delays. Thus, a form of content which may be acceptable for the LAN connection may be unacceptable for the wireless communication link.
Similarly, other performance issues, which may change from session to session or during a session, may also impact on the transformation or xe2x80x9ctailoringxe2x80x9d of content for pervasive computing devices. Thus, for example, the expected duration of the connection, congestion on the communication link or network or the content provided to the pervasive computing device may all impact on the type of tailoring of content to be performed.
Conventionally, this tailoring of content has been performed either at the server providing the content to the pervasive computing device or at the pervasive computing device. See for example, ProxiWeb browser and proxy from Proxinet, Inc., and U.S. Pat. No. 5,764,235. However, such an arbitrary allocation of tailoring functions may result in performance degradation to the server, the pervasive computing device or the network through which these devices communicate. Thus, a need exists for improvements in the tailoring of content for pervasive computing devices to better exploit the resources available to such devices.
In view of the above discussion, it is an object of the present invention to provide improved tailoring of content for data processing systems, such as pervasive computing devices.
A further object of the present invention is to provide for the improved tailoring of content without requiring modification of existing browsers or servers.
Still another object of the present invention is to provide content tailoring without requiring user intervention in each instance.
These and other objects of the present invention are provided by methods, systems and computer program products for tailoring content for a session (i.e. a period of time where the operating environment of a data processing is not expected to change) of a first data processing system (such as a client) communicating with a second data processing system (such as a server or proxy) by obtaining session specific information from the first data processing system and distributing tailoring functions between the first data processing system and the second data processing system based upon the obtained session specific information. In particular, policies which control the distribution of tailoring functions between data processing systems based on session specific information may be obtained from a repository and tailoring functions distributed between the first data processing system and the second data processing system according to the obtained policies and the session specific information.
An ability to modify the location of content tailoring dynamically allows for the ability to respond to changes in server availability, network conditions, connection types, information presentation characteristics, device types, user preferences and organizational policies. By distributing the tailoring of content provided to a data processing system, such as a pervasive computing device, based on session specific information, the location of the content tailoring may be established based on particular characteristics of a session. The location of content tailoring may be determined to take advantage of the characteristics of a session to provide improvement in the tailoring of content. By basing the distribution of the content tailoring functions on session specific information and established policies, both the concerns of a particular user as well as the overall concerns of network management may be taken into account in tailoring content to be provided to a data processing system. Thus, in a particular instance, the location of content tailoring functions may be divided so as to provide improved tailoring performance to an individual user while maintaining network performance for other users.
In particular embodiment of the present invention, the policies which control the distribution of tailoring functions between data processing systems are defined and stored in a policy repository accessible to the second data processing system. In such a case, the policies are obtained from the policy repository.
In a further embodiment of the present invention, user preferences associated with the distribution of content tailoring functions between the first data processing system and data processing systems other than the first data processing system are stored in a preferences repository accessible to the second data processing system. The stored user preferences associated with a user of the first data processing system are obtained from the preferences repository and the session information, the obtained policies and the obtained user preferences are coalesced so as to define a content tailoring distribution for the session. The tailoring functions are then distributed between the first data processing system and the second data processing system according to the defined content tailoring distribution for the session.
By providing the policies and user preferences in repositories, the policies and user preferences become xe2x80x9cportablexe2x80x9d in that a user who has access to the second data processing system may take advantage of the policy based distribution of tailoring functions irrespective of the physical location of the user and the particular device being used by the user. Furthermore, by coalescing the information, preferences may be tailored for a particular session, thus providing further portability of content tailoring distribution from device to device and session to session. A user may have defined user default preferences which are stored in the repository and are overridden based on the particular characteristics of a device being used by the user. For example, a user may have preferences established for a desktop workstation which are overridden when the user logs on using a PDA. Thus, the present invention may provide flexibility without requiring user intervention on a case by case basis.
In yet another embodiment of the present invention, the session specific information may include information associated with a preference of the first data processing system as to the allocation of content tailoring functions between the first data processing system and data processing systems other than the first data processing system. The session specific information may also include an identification associated with a user of the first data processing system, hardware configuration information associated with the first data processing system, application information associated with an application executing on the first data processing system and/or operating system information associated with an operating system executing on the first data processing system.
In yet another embodiment of the present invention, content to be provided to the first data processing system is tailored at the second data processing system according to a first content tailoring function specified by the obtained policies and the session specific information so as to provide first tailored content. The first tailored content is then provided to the first data processing system. The first tailored content provided to the first data processing system may be further tailored at the first data processing system according to a second content tailoring function specified by the obtained policies and the session specific information so as to provide final tailored content for data presentation.
In another embodiment of the present invention, content provided to a first data processing system communicating with a second data processing system is tailored by transmitting a request for content from the first data processing system to the second data processing system. The request for content provides information associated with the tailoring of content to be provided to the first data processing system. In response to receiving the request from the first data processing system at the second data processing system, policies associated with the tailoring of content provided to the first data processing system are obtained. The policies are associated with defining the distribution of functions for tailoring content to be provided to the first data processing system between the first data processing system and at least one data processing system other than the first data processing system. The content requested by the received request is obtained and tailored utilizing a first tailoring operation at the data processing system other than the first data processing system. The first tailoring operation is based on the obtained policies and the information provided by the request. The tailored content is provided to the first data processing system and further tailored at the first data processing system based on the obtained policies and the information provided in the request.
By making the distribution of content tailoring functions responsive to requests from the first data processing system, particular embodiments of the present invention allow for a client-server paradigm. In such a paradigm, the present invention may take the form of a proxy or proxies which may be transparent to the application or users initially generating the requests and to the server or servers responding to the requests. Thus, the present invention provides for the distribution of content tailoring functions without requiring modifications to existing applications.
In a further embodiment of the present invention, the information associated with the tailoring of content includes a user identification associated with a user of the first data processing system. User preferences associated with the distribution of content tailoring functions between the first data processing system and data processing systems other than the first data processing system are stored in a preferences repository accessible to the second data processing system. The stored user preferences associated with the user of the first data processing system are then obtained from the preferences repository and the obtained content tailored utilizing a first tailoring operation based on the obtained policies, the obtained stored user preferences and the information provided by the request. Furthermore, the user preferences received from the first data processing system may be coalesced with the obtained policies and/or the obtained user preferences so as to define a content tailoring distribution for the first data processing system.
In a further embodiment of the present invention, client content tailoring information may be incorporated into the tailored content to be provided to the first data processing system. The content provided to the first data processing system is then tailored at the first data processing system based on the client content tailoring information. Furthermore, the client content tailoring information may specify a software program associated with the tailoring of content by the first data processing system. The first data processing system may then obtain the software program specified by the client content tailoring information and execute the software program at the first data processing system to further tailor the content.
In a particularly preferred embodiment of the present invention, the first data processing system is a pervasive computing device.
As will be appreciated by those of skill in the art, the present invention may be provided as a method, system or apparatus, and/or computer program product.